package mx.com.fractal.ristorante.dao.impl;

import java.sql.SQLException;
import java.util.List;

import mx.com.fractal.ristorante.dao.PersonalDAO;
import mx.com.fractal.ristorante.dto.PersonalDTO;
import mx.com.fractal.ristorante.util.ParamSrcUtil;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.support.GeneratedKeyHolder;
import org.springframework.stereotype.Repository;

@Repository("personalDAO")
public class PersonalDAOImpl implements PersonalDAO{

	@Autowired
	private NamedParameterJdbcTemplate jdbc;
	
	String INSERT = "INSERT INTO ristorant_e.personal(id_restaurante,id_posicion,id_direccion,"
			+ "nombre,ap_paterno,ap_materno,"
			+ "codigo_personal,fecha_nacimiento,curp,ife,telefono,rfc,"
			+ "email,celular) "
			+ "VALUES(:getIdRestaurante,:idPosicion,:idDireccion,"
			+ ":getNombre,:getApPaterno,:getApMaterno,"
			+ ":getCodigoPersonal,:getFechaNacimiento,:getCurp,:getIfe,:getTelefono,:getRfc,"
			+ ":getEmail,:getCelular)";
	
	
	public Integer save(PersonalDTO personal) {
		MapSqlParameterSource parameters = ParamSrcUtil
				.getParams(personal);
//		la posicion del personal es obligatoria
		parameters.addValue("idPosicion", personal.getPosicion().getIdPisicion());
		if(personal.getDireccion() != null){
			parameters.addValue("idDireccion", personal.getDireccion().getIdDireccion());
		}else{
			parameters.addValue("idDireccion",null);
		}
		
		GeneratedKeyHolder holder = new GeneratedKeyHolder();
		jdbc.update(INSERT, parameters, holder);
		
		return (Integer) holder.getKeys().get("id_personal");
	}


	public List<PersonalDTO> getAllBy(PersonalDTO conditions)
			throws SQLException {
		// TODO Auto-generated method stub
		return null;
	}



}
